<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BSPTreeVisitor (Apache Commons Math 3.6.1 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="BSPTreeVisitor (Apache Commons Math 3.6.1 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BSPTreeVisitor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.VanishingCutHandler.html" title="interface in org.apache.commons.math3.geometry.partitioning"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html" title="enum in org.apache.commons.math3.geometry.partitioning"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" target="_top">Frames</a></li>
<li><a href="BSPTreeVisitor.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.geometry.partitioning</div>
<h2 title="Interface BSPTreeVisitor" class="title">Interface BSPTreeVisitor&lt;S extends <a href="../../../../../../org/apache/commons/math3/geometry/Space.html" title="interface in org.apache.commons.math3.geometry">Space</a>&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>S</code> - Type of the space.</dd></dl>
<hr>
<br>
<pre>public interface <span class="strong">BSPTreeVisitor&lt;S extends <a href="../../../../../../org/apache/commons/math3/geometry/Space.html" title="interface in org.apache.commons.math3.geometry">Space</a>&gt;</span></pre>
<div class="block">This interface is used to visit <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning"><code>BSP tree</code></a> nodes.

 <p>Navigation through <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning"><code>BSP trees</code></a> can be done using
 two different point of views:</p>
 <ul>
   <li>
     the first one is in a node-oriented way using the <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html#getPlus()"><code>BSPTree.getPlus()</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html#getMinus()"><code>BSPTree.getMinus()</code></a> and <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html#getParent()"><code>BSPTree.getParent()</code></a> methods. Terminal nodes without associated
     <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning"><code>sub-hyperplanes</code></a> can be visited this way,
     there is no constraint in the visit order, and it is possible
     to visit either all nodes or only a subset of the nodes
   </li>
   <li>
     the second one is in a sub-hyperplane-oriented way using
     classes implementing this interface which obeys the visitor
     design pattern. The visit order is provided by the visitor as
     each node is first encountered. Each node is visited exactly
     once.
   </li>
 </ul></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.0</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning"><code>BSPTree</code></a>, 
<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning"><code>SubHyperplane</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html" title="enum in org.apache.commons.math3.geometry.partitioning">BSPTreeVisitor.Order</a></strong></code>
<div class="block">Enumerate for visit order with respect to plus sub-tree, minus sub-tree and cut sub-hyperplane.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitInternalNode(org.apache.commons.math3.geometry.partitioning.BSPTree)">visitInternalNode</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" title="type parameter in BSPTreeVisitor">S</a>&gt;&nbsp;node)</code>
<div class="block">Visit a BSP tree node node having a non-null sub-hyperplane.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitLeafNode(org.apache.commons.math3.geometry.partitioning.BSPTree)">visitLeafNode</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" title="type parameter in BSPTreeVisitor">S</a>&gt;&nbsp;node)</code>
<div class="block">Visit a leaf BSP tree node node having a null sub-hyperplane.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html" title="enum in org.apache.commons.math3.geometry.partitioning">BSPTreeVisitor.Order</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitOrder(org.apache.commons.math3.geometry.partitioning.BSPTree)">visitOrder</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" title="type parameter in BSPTreeVisitor">S</a>&gt;&nbsp;node)</code>
<div class="block">Determine the visit order for this node.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="visitOrder(org.apache.commons.math3.geometry.partitioning.BSPTree)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>visitOrder</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html" title="enum in org.apache.commons.math3.geometry.partitioning">BSPTreeVisitor.Order</a>&nbsp;visitOrder(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" title="type parameter in BSPTreeVisitor">S</a>&gt;&nbsp;node)</pre>
<div class="block">Determine the visit order for this node.
 <p>Before attempting to visit an internal node, this method is
 called to determine the desired ordering of the visit. It is
 guaranteed that this method will be called before <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitInternalNode(org.apache.commons.math3.geometry.partitioning.BSPTree)"><code>visitInternalNode</code></a> for a given node, it will be
 called exactly once for each internal node.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>node</code> - BSP node guaranteed to have a non null cut sub-hyperplane</dd>
<dt><span class="strong">Returns:</span></dt><dd>desired visit order, must be one of
 <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html#PLUS_MINUS_SUB"><code>BSPTreeVisitor.Order.PLUS_MINUS_SUB</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html#PLUS_SUB_MINUS"><code>BSPTreeVisitor.Order.PLUS_SUB_MINUS</code></a>,
 <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html#MINUS_PLUS_SUB"><code>BSPTreeVisitor.Order.MINUS_PLUS_SUB</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html#MINUS_SUB_PLUS"><code>BSPTreeVisitor.Order.MINUS_SUB_PLUS</code></a>,
 <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html#SUB_PLUS_MINUS"><code>BSPTreeVisitor.Order.SUB_PLUS_MINUS</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html#SUB_MINUS_PLUS"><code>BSPTreeVisitor.Order.SUB_MINUS_PLUS</code></a></dd></dl>
</li>
</ul>
<a name="visitInternalNode(org.apache.commons.math3.geometry.partitioning.BSPTree)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>visitInternalNode</h4>
<pre>void&nbsp;visitInternalNode(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" title="type parameter in BSPTreeVisitor">S</a>&gt;&nbsp;node)</pre>
<div class="block">Visit a BSP tree node node having a non-null sub-hyperplane.
 <p>It is guaranteed that this method will be called after <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitOrder(org.apache.commons.math3.geometry.partitioning.BSPTree)"><code>visitOrder</code></a> has been called for a given node,
 it wil be called exactly once for each internal node.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>node</code> - BSP node guaranteed to have a non null cut sub-hyperplane</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitLeafNode(org.apache.commons.math3.geometry.partitioning.BSPTree)"><code>visitLeafNode(org.apache.commons.math3.geometry.partitioning.BSPTree&lt;S&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="visitLeafNode(org.apache.commons.math3.geometry.partitioning.BSPTree)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>visitLeafNode</h4>
<pre>void&nbsp;visitLeafNode(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" title="type parameter in BSPTreeVisitor">S</a>&gt;&nbsp;node)</pre>
<div class="block">Visit a leaf BSP tree node node having a null sub-hyperplane.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>node</code> - leaf BSP node having a null sub-hyperplane</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html#visitInternalNode(org.apache.commons.math3.geometry.partitioning.BSPTree)"><code>visitInternalNode(org.apache.commons.math3.geometry.partitioning.BSPTree&lt;S&gt;)</code></a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BSPTreeVisitor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.VanishingCutHandler.html" title="interface in org.apache.commons.math3.geometry.partitioning"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.Order.html" title="enum in org.apache.commons.math3.geometry.partitioning"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/geometry/partitioning/BSPTreeVisitor.html" target="_top">Frames</a></li>
<li><a href="BSPTreeVisitor.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
